package com.gewu.pm.ui.activity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.gewu.pm.R;
import com.gewu.pm.aop.SingleClick;
import com.gewu.pm.app.AppActivity;
import com.gewu.pm.other.AppConfig;
import com.gewu.pm.ui.MainActivity;
import com.gyf.immersionbar.BarHide;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.http.EasyHttp;
import com.hjq.widget.view.SlantedTextView;

/**
 *  闪屏界面
 */
public final class SplashActivity extends AppActivity {

    private SlantedTextView mDebugView;
    private TextView tvTime;
    @Override
    protected int getLayoutId() {
        return R.layout.splash_activity;
    }

    @Override
    protected void initView(Bundle savedInstanceState) {
        mDebugView = findViewById(R.id.iv_splash_debug);
        tvTime = findViewById(R.id.tv_time);
        setOnClickListener(tvTime);

    }
    @Override
    protected void initData() {
        mDebugView.setText(AppConfig.getBuildType().toUpperCase());
        if (AppConfig.isDebug()) {
            mDebugView.setVisibility(View.VISIBLE);
        } else {
            mDebugView.setVisibility(View.INVISIBLE);
        }

        postDelayed(runnable, 0);

    }

    boolean isLive = true;
    int intervalTime = 1000;//间隔多少毫秒执行一次
    long countDownTime = 3;//倒计时时间
    //计时器  计算骑行时长以及费用
    Runnable runnable = new Runnable() {
        @SuppressLint("SetTextI18n")
        @Override
        public void run() {
            if (isLive) {
                countDownTime--;
                if (countDownTime > 0) {
                    tvTime.setText(countDownTime + "  跳过广告");
                } else {
                    isLive = false;
                    startMain();
                }
                postDelayed(this, intervalTime);
            }
        }
    };
    private void startMain(){
        removeCallbacks(runnable);
        MainActivity.start(getContext());
        finish();
    }
    @SingleClick
    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.tv_time) {
            EasyHttp.cancelAll();
            startMain();
        }
    }
    @NonNull
    @Override
    protected ImmersionBar createStatusBarConfig() {
        return super.createStatusBarConfig()
                // 隐藏状态栏和导航栏
                .hideBar(BarHide.FLAG_HIDE_BAR);
    }

    @Override
    public void onBackPressed() {
        //禁用返回键
        //super.onBackPressed();
    }

    @Override
    protected void initActivity(Bundle savedInstanceState) {
        // 问题及方案：https://www.cnblogs.com/net168/p/5722752.html
        // 如果当前 Activity 不是任务栈中的第一个 Activity
        if (!isTaskRoot()) {
            Intent intent = getIntent();
            // 如果当前 Activity 是通过桌面图标启动进入的
            if (intent != null && intent.hasCategory(Intent.CATEGORY_LAUNCHER)
                    && Intent.ACTION_MAIN.equals(intent.getAction())) {
                // 对当前 Activity 执行销毁操作，避免重复实例化入口
                finish();
                return;
            }
        }
        super.initActivity(savedInstanceState);
    }

    @Deprecated
    @Override
    protected void onDestroy() {
        // 因为修复了一个启动页被重复启动的问题，所以有可能 Activity 还没有初始化完成就已经销毁了
        // 所以如果需要在此处释放对象资源需要先对这个对象进行判空，否则可能会导致空指针异常
        super.onDestroy();
        isLive = false;
    }
}